This saves us a conditional.
ret = TRUE;
operation_free (op);
- if (args)
- g_variant_unref (args);
+ ot_clear_gvariant (&args);
return ret;
}
out:
if (ret_checksum)
g_checksum_free (ret_checksum);
- if (dirmeta)
- g_variant_unref (dirmeta);
- if (packed)
- g_variant_unref (packed);
+ ot_clear_gvariant (&dirmeta);
+ ot_clear_gvariant (&packed);
return ret;
}
out:
g_clear_object (&input);
g_free (basename);
- if (xattrs)
- g_variant_unref (xattrs);
+ ot_clear_gvariant (&xattrs);
if (content_sha256)
g_checksum_free (content_sha256);
return ret;
*out_metadata = ret_metadata;
ret_metadata = NULL;
out:
- if (ret_metadata)
- g_variant_unref (ret_metadata);
- if (xattrs)
- g_variant_unref (xattrs);
+ ot_clear_gvariant (&ret_metadata);
+ ot_clear_gvariant (&xattrs);
return ret;
}
value_data = g_variant_get_fixed_array (value, &value_len, 1);
loop_err = lsetxattr (path, (char*)name, (char*)value_data, value_len, XATTR_REPLACE) < 0;
-
- g_variant_unref (value);
+ ot_clear_gvariant (&value);
if (loop_err)
{
ot_util_set_error_from_errno (error, errno);
*out_variant = ot_util_variant_take_ref (ret_variant);
ret_variant = NULL;
out:
- if (ret_variant)
- g_variant_unref (ret_variant);
- if (container != NULL)
- g_variant_unref (container);
+ ot_clear_gvariant (&ret_variant);
+ ot_clear_gvariant (&container);
return ret;
}
out:
g_clear_object (&finfo);
g_clear_object (&instream);
- if (xattrs)
- g_variant_unref (xattrs);
+ ot_clear_gvariant (&xattrs);
if (pack_builder_initialized)
g_variant_builder_clear (&pack_builder);
- if (pack_variant)
- g_variant_unref (pack_variant);
+ ot_clear_gvariant (&pack_variant);
return ret;
}
in = NULL;
out:
g_clear_object (&in);
- if (ret_metadata)
- g_variant_unref (ret_metadata);
+ ot_clear_gvariant (&ret_metadata);
return ret;
}
g_checksum_free (ret_checksum);
g_clear_object (&in);
g_clear_object (&out);
- if (metadata)
- g_variant_unref (metadata);
- if (xattrs)
- g_variant_unref (xattrs);
+ ot_clear_gvariant (&metadata);
+ ot_clear_gvariant (&xattrs);
return ret;
}
self = OSTREE_REPO_FILE (object);
- if (self->tree_contents)
- g_variant_unref (self->tree_contents);
- if (self->tree_metadata)
- g_variant_unref (self->tree_metadata);
+ ot_clear_gvariant (&self->tree_contents);
+ ot_clear_gvariant (&self->tree_metadata);
g_free (self->tree_contents_checksum);
g_free (self->tree_metadata_checksum);
g_free (self->commit);
root_contents = NULL;
out:
- if (commit)
- g_variant_unref (commit);
- if (root_metadata)
- g_variant_unref (root_metadata);
- if (root_contents)
- g_variant_unref (root_contents);
+ ot_clear_gvariant (&commit);
+ ot_clear_gvariant (&root_metadata);
+ ot_clear_gvariant (&root_contents);
return ret;
}
files_variant = g_variant_get_child_value (self->parent->tree_contents, 2);
self->index = g_variant_n_children (files_variant) + i;
- g_variant_unref (files_variant);
+ ot_clear_gvariant (&files_variant);
g_variant_get_child (container, i, "(&s&s&s)",
&name, &content_checksum, &metadata_checksum);
ret = TRUE;
out:
- if (container)
- g_variant_unref (container);
- if (tree_metadata)
- g_variant_unref (tree_metadata);
- if (tree_contents)
- g_variant_unref (tree_contents);
+ ot_clear_gvariant (&container);
+ ot_clear_gvariant (&tree_metadata);
+ ot_clear_gvariant (&tree_contents);
return ret;
}
*out_xattrs = ret_xattrs;
ret_xattrs = NULL;
out:
- if (ret_xattrs)
- g_variant_unref (ret_xattrs);
- if (metadata)
- g_variant_unref (metadata);
+ ot_clear_gvariant (&ret_xattrs);
+ ot_clear_gvariant (&metadata);
g_clear_object (&input);
g_clear_object (&local_file);
return ret;
const char *checksum,
GVariant *metadata)
{
- if (self->tree_metadata)
- g_variant_unref (self->tree_metadata);
+ ot_clear_gvariant (&self->tree_metadata);
self->tree_metadata = g_variant_ref (metadata);
g_free (self->tree_metadata_checksum);
self->tree_metadata_checksum = g_strdup (checksum);
g_variant_get_child (files_variant, n,
"(@s&s)", NULL, &checksum);
}
-
- g_variant_unref (files_variant);
- g_variant_unref (dirs_variant);
+ ot_clear_gvariant (&files_variant);
+ ot_clear_gvariant (&dirs_variant);
return checksum;
}
ret = TRUE;
out:
g_free (buf);
- if (metadata)
- g_variant_unref (metadata);
+ ot_clear_gvariant (&metadata);
g_clear_object (&local_file);
g_clear_object (&input);
return ret;
ret = TRUE;
out:
- if (metadata)
- g_variant_unref (metadata);
+ ot_clear_gvariant (&metadata);
return ret;
}
n = m - 1;
else
{
- g_variant_unref (child);
+ ot_clear_gvariant (&child);
*out_pos = m;
return TRUE;
}
- g_variant_unref (child);
+ ot_clear_gvariant (&child);
}
*out_pos = m;
{
if (i != n)
g_variant_builder_add_value (&builder, child);
- g_variant_unref (child);
+ ot_clear_gvariant (&child);
}
g_variant_iter_free (iter);
if (i == n)
g_variant_builder_add_value (&builder, item);
g_variant_builder_add_value (&builder, child);
- g_variant_unref (child);
+ ot_clear_gvariant (&child);
}
g_variant_iter_free (iter);
tmp_dirs = g_variant_get_child_value (self->tree_contents, 3);
}
- if (self->tree_contents)
- g_variant_unref (self->tree_contents);
+ ot_clear_gvariant (&self->tree_contents);
self->tree_contents = g_variant_new ("(u@a{sv}@a(ss)@a(sss))", version, metadata,
new_files ? new_files : tmp_files,
new_dirs ? new_dirs : tmp_dirs);
- g_variant_unref (metadata);
- if (tmp_files)
- g_variant_unref (tmp_files);
- if (tmp_dirs)
- g_variant_unref (tmp_dirs);
+ ot_clear_gvariant (&tmp_files);
+ ot_clear_gvariant (&tmp_dirs);
}
void
tree_replace_contents (self, new_files_variant, new_dirs_variant);
- g_variant_unref (files_variant);
- g_variant_unref (dirs_variant);
+ ot_clear_gvariant (&files_variant);
+ ot_clear_gvariant (&dirs_variant);
}
void
g_variant_new ("(ss)", name, checksum));
g_variant_ref_sink (new_files_variant);
tree_replace_contents (self, new_files_variant, NULL);
- g_variant_unref (new_files_variant);
+ ot_clear_gvariant (&new_files_variant);
}
- g_variant_unref (files_variant);
+ ot_clear_gvariant (&files_variant);
}
void
metadata_checksum));
g_variant_ref_sink (new_dirs_variant);
tree_replace_contents (self, NULL, new_dirs_variant);
- g_variant_unref (new_dirs_variant);
+ ot_clear_gvariant (&new_dirs_variant);
}
- g_variant_unref (dirs_variant);
+ ot_clear_gvariant (&dirs_variant);
}
int
*out_container = ret_container;
ret_container = NULL;
}
- if (ret_container)
- g_variant_unref (ret_container);
- if (files_variant)
- g_variant_unref (files_variant);
- if (dirs_variant)
- g_variant_unref (dirs_variant);
+ ot_clear_gvariant (&ret_container);
+ ot_clear_gvariant (&files_variant);
+ ot_clear_gvariant (&dirs_variant);
return i;
}
g_clear_object (&ret_info);
if (matcher)
g_file_attribute_matcher_unref (matcher);
- if (tree_child_metadata)
- g_variant_unref (tree_child_metadata);
- g_variant_unref (files_variant);
- g_variant_unref (dirs_variant);
+ ot_clear_gvariant (&tree_child_metadata);
+ ot_clear_gvariant (&files_variant);
+ ot_clear_gvariant (&dirs_variant);
return ret;
}
ret_rev = NULL;
ret = TRUE;
out:
- if (commit)
- g_variant_unref (commit);
+ ot_clear_gvariant (&commit);
g_free (tmp);
g_free (tmp2);
g_clear_object (&child);
close (fd);
if (checksum)
g_checksum_free (checksum);
- if (serialized != NULL)
- g_variant_unref (serialized);
+ ot_clear_gvariant (&serialized);
g_free (dest_name);
g_clear_object (&stream);
return ret;
*out_variant = ret_variant;
ret_variant = NULL;
out:
- if (ret_variant)
- g_variant_unref (ret_variant);
+ ot_clear_gvariant (&ret_variant);
return ret;
}
g_clear_object (&f_info);
if (ret_checksum)
g_checksum_free (ret_checksum);
- if (dirmeta != NULL)
- g_variant_unref (dirmeta);
+ ot_clear_gvariant (&dirmeta);
return ret;
}
return;
parsed_tree_data_free (pdata->tree_data);
g_free (pdata->metadata_sha256);
- g_variant_unref (pdata->meta_data);
+ ot_clear_gvariant (&pdata->meta_data);
g_free (pdata);
}
g_variant_builder_clear (&files_builder);
g_variant_builder_clear (&dirs_builder);
}
- if (serialized_tree)
- g_variant_unref (serialized_tree);
+ ot_clear_gvariant (&serialized_tree);
return ret;
}
if (dir_value)
{
- g_variant_unref (dir_value->meta_data);
+ ot_clear_gvariant (&dir_value->meta_data);
dir_value->meta_data = dirmeta;
}
else
out:
if (root_checksum)
g_checksum_free (root_checksum);
- if (commit)
- g_variant_unref (commit);
+ ot_clear_gvariant (&commit);
if (now)
g_date_time_unref (now);
return ret;
*out_root = ret_root;
ret_root = NULL;
out:
- if (root_metadata)
- g_variant_unref (root_metadata);
+ ot_clear_gvariant (&root_metadata);
if (root_meta_checksum)
g_checksum_free (root_meta_checksum);
parsed_directory_data_free (ret_root);
if (ret_commit_checksum)
g_checksum_free (ret_commit_checksum);
g_free (current_head);
- if (root_metadata)
- g_variant_unref (root_metadata);
+ ot_clear_gvariant (&root_metadata);
if (root_meta_checksum)
g_checksum_free (root_meta_checksum);
g_clear_object (&datain);
*out_variant = ret_variant;
ret_variant = NULL;
out:
- if (ret_variant)
- g_variant_unref (ret_variant);
+ ot_clear_gvariant (&ret_variant);
g_clear_object (&f);
return ret;
}
out:
g_clear_object (&dest_file);
g_free (dest_path);
- if (xattr_variant)
- g_variant_unref (xattr_variant);
+ ot_clear_gvariant (&xattr_variant);
return ret;
}
*out_variant = ret_variant;
ret_variant = NULL;
out:
- if (ret_variant)
- g_variant_unref (ret_variant);
+ ot_clear_gvariant (&ret_variant);
if (mfile)
g_mapped_file_unref (mfile);
return ret;
G_BEGIN_DECLS
+#define ot_clear_gvariant(a_v) do { \
+ if (*a_v) \
+ g_variant_unref (*a_v); \
+ *a_v = NULL; \
+ } while (0);
+
GHashTable *ot_util_variant_asv_to_hash_table (GVariant *variant);
GVariant * ot_util_variant_take_ref (GVariant *variant);
g_variant_builder_clear (&commit_metadata_builder);
if (context)
g_option_context_free (context);
- if (commit_metadata)
- g_variant_unref (commit_metadata);
+ ot_clear_gvariant (&commit_metadata);
g_clear_object (&repo);
g_clear_object (&checkout);
g_clear_object (&destf);
g_checksum_free (ret_checksum);
g_free (metadata_buf);
g_clear_object (&in);
- if (metadata)
- g_variant_unref (metadata);
- if (xattrs)
- g_variant_unref (xattrs);
+ ot_clear_gvariant (&metadata);
+ ot_clear_gvariant (&xattrs);
return ret;
}
GVariant *commit_metadata = NULL;
char *formatted_metadata = NULL;
- if (commit)
- g_variant_unref (commit);
+ ot_clear_gvariant (&commit);
if (!ostree_repo_load_variant (repo, resolved_rev, &type, &commit, error))
goto out;
g_date_time_unref (time_obj);
time_obj = NULL;
- formatted_metadata = g_variant_print (commit_metadata, TRUE);
- g_variant_unref (commit_metadata);
+ ot_clear_gvariant (&commit_metadata);
formatted = g_strdup_printf ("commit %s\nSubject: %s\nDate: %s\nMetadata: %s\n\n",
resolved_rev, subject, formatted_date, formatted_metadata);
g_free (formatted_metadata);
g_free (resolved_rev);
if (context)
g_option_context_free (context);
- if (commit)
- g_variant_unref (commit);
+ ot_clear_gvariant (&commit);
g_clear_object (&repo);
return ret;
}
ret = TRUE;
out:
- if (tree)
- g_variant_unref (tree);
- if (files_variant)
- g_variant_unref (files_variant);
- if (dirs_variant)
- g_variant_unref (dirs_variant);
+ ot_clear_gvariant (&tree);
+ ot_clear_gvariant (&files_variant);
+ ot_clear_gvariant (&dirs_variant);
return ret;
}
ret = TRUE;
out:
- if (commit)
- g_variant_unref (commit);
+ ot_clear_gvariant (&commit);
return ret;
}
if (context)
g_option_context_free (context);
g_clear_object (&repo);
- if (variant)
- g_variant_unref (variant);
+ ot_clear_gvariant (&variant);
g_free (formatted_variant);
return ret;
}
g_print ("%s\n", formatted_variant);
g_free (formatted_variant);
- if (byteswapped)
- g_variant_unref (byteswapped);
+ ot_clear_gvariant (&byteswapped);
}
static gboolean
ret = TRUE;
out:
- if (variant)
- g_variant_unref (variant);
+ ot_clear_gvariant (&variant);
g_clear_object (&f);
return ret;
}
ret = TRUE;
out:
- if (variant)
- g_variant_unref (variant);
+ ot_clear_gvariant (&variant);
return ret;
}
out:
g_clear_object (&file);
g_clear_object (&content);
- if (variant)
- g_variant_unref (variant);
+ ot_clear_gvariant (&variant);
return ret;
}
ret = TRUE;
out:
- if (variant)
- g_variant_unref (variant);
+ ot_clear_gvariant (&variant);
if (viter)
g_variant_iter_free (viter);
- if (metadata)
- g_variant_unref (metadata);
+ ot_clear_gvariant (&metadata);
if (metadata_hash)
g_hash_table_destroy (metadata_hash);
return ret;